Modern audio communication devices, such as telephones and computers, are often configured to receive audio data from a remote network source and to audibilize that audio data using one or more speakers. Such devices are often also equipped with one or more microphones configured to capture local audio data that the communication device can communicate to the remote source over the network.
A classic problem with such devices is that of audio echo. That is, when audio data received from a remote source is audibilized through a speaker of the communication device, the microphone on the communication device may detect this audibilized data and in response, the communication device transmits the received audio data back to the remote source, resulting in an echo effect.
The problem is further complicated when the microphone detects both audio data from the speaker and audio data from a local source (e.g., the telephone user speaking). In such cases, it is desirable for the device to transmit only the audio data from the local source and not to echo the audio data from the microphone.
To mitigate this effect, communication devices and/or microphones have been configured to utilize various echo cancellation techniques. The objective of such techniques is to eliminate a known source (received audio data) after it has undergone a transformation and is then mixed with another new source (locally produced audio).
Traditional approaches to echo cancellation focus on the idea of a canceller that assumes the received signal will undergo a linear transformation before being re-recorded by the microphone. This linear transformation accounts for propagation delay, the speaker/microphone frequency response, and the environment in which the recording takes place. An adaptive filter may be used to model these effects and the output is then subtracted from the observed mixture to suppress the echo portion of the return signal. However, such approaches present various shortcomings in practical deployment. For example, the filter must dynamically adjust to continuously changing mixing conditions (such as changes in the channel and/or environment response) and it cannot adapt effectively while both ends simultaneously produce sound. To solve these problems, more advanced echo cancellation techniques are required.